home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / prog_bas / decdef.zip / DECDEF.FRM < prev    next >
Text File  |  1996-01-04  |  6KB  |  250 lines

  1. VERSION 2.00
  2. Begin Form decdef 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   3  'Fixed Double
  5.    Caption         =   "Decompiler Defeater from MCS Electronics"
  6.    ClientHeight    =   2835
  7.    ClientLeft      =   2340
  8.    ClientTop       =   2895
  9.    ClientWidth     =   6840
  10.    ClipControls    =   0   'False
  11.    Height          =   3240
  12.    Left            =   2280
  13.    LinkTopic       =   "Form1"
  14.    ScaleHeight     =   2835
  15.    ScaleWidth      =   6840
  16.    Top             =   2550
  17.    Width           =   6960
  18.    Begin CommandButton Command5 
  19.       BackColor       =   &H000000FF&
  20.       Caption         =   "Select"
  21.       Height          =   375
  22.       Left            =   5280
  23.       TabIndex        =   5
  24.       Top             =   840
  25.       Width           =   1335
  26.    End
  27.    Begin CommandButton Command4 
  28.       Caption         =   "&End"
  29.       Height          =   495
  30.       Left            =   5280
  31.       TabIndex        =   8
  32.       Top             =   1560
  33.       Width           =   1335
  34.    End
  35.    Begin CommandButton Command3 
  36.       Caption         =   "Select"
  37.       Height          =   375
  38.       Left            =   5280
  39.       TabIndex        =   2
  40.       Top             =   360
  41.       Width           =   1335
  42.    End
  43.    Begin TextBox exefile 
  44.       Height          =   285
  45.       Left            =   1440
  46.       TabIndex        =   4
  47.       Top             =   960
  48.       Width           =   3615
  49.    End
  50.    Begin TextBox prjfile 
  51.       Height          =   285
  52.       Left            =   1440
  53.       TabIndex        =   1
  54.       Top             =   360
  55.       Width           =   3615
  56.    End
  57.    Begin CommonDialog CMDialog1 
  58.       CancelError     =   -1  'True
  59.       Left            =   840
  60.       Top             =   3840
  61.    End
  62.    Begin CommandButton Command2 
  63.       Caption         =   "Method 2"
  64.       Height          =   495
  65.       Left            =   3360
  66.       TabIndex        =   7
  67.       Top             =   1560
  68.       Width           =   1695
  69.    End
  70.    Begin CommandButton Command1 
  71.       Caption         =   "Method 1"
  72.       Height          =   495
  73.       Left            =   1440
  74.       TabIndex        =   6
  75.       Top             =   1560
  76.       Width           =   1575
  77.    End
  78.    Begin Label Label3 
  79.       BackColor       =   &H00C0C0C0&
  80.       Caption         =   "Technic 1 overwrites the formnames in the EXE file. Technic 2 overwrites all the controlnames of the forms. "
  81.       Height          =   615
  82.       Left            =   120
  83.       TabIndex        =   9
  84.       Top             =   2160
  85.       Width           =   6495
  86.       WordWrap        =   -1  'True
  87.    End
  88.    Begin Label Label2 
  89.       BackColor       =   &H00C0C0C0&
  90.       Caption         =   "EXE file"
  91.       Height          =   255
  92.       Left            =   120
  93.       TabIndex        =   3
  94.       Top             =   960
  95.       Width           =   1095
  96.    End
  97.    Begin Label Label1 
  98.       BackColor       =   &H00C0C0C0&
  99.       Caption         =   "Project file"
  100.       Height          =   255
  101.       Left            =   120
  102.       TabIndex        =   0
  103.       Top             =   360
  104.       Width           =   1095
  105.    End
  106. End
  107. DefInt A-Z
  108.  
  109. Sub Command1_Click ()
  110.   ReDim frm$(100)'array to hold the formnames
  111.   file$ = exefile.Text
  112.   If prjfile.Text <> "" Then
  113.      Open prjfile.Text For Input As #1
  114.      Do
  115.         Line Input #1, r$
  116.         If InStr(r$, ".FRM") Then
  117.            ftel = ftel + 1: frm$(ftel) = r$  'add formname
  118.         End If
  119.      Loop Until EOF(1)
  120.      Close #1
  121.   
  122.      st& = 1
  123.      ZOEK$ = Chr(&H3) + Chr(&H20) + Chr(&H81)
  124.      ps& = ScanFile&(file$, ZOEK$, st&)      'search it
  125.      If ps& > 0 Then
  126.         Open exefile.Text For Binary As #1
  127.         Seek #1, ps&
  128.         a$ = Space$(1000)
  129.         Get #1, , a$
  130.         Seek #1, ps&
  131.         GoSub modify                    'modify the code
  132.         Put #1, , a$                    'write it back
  133.         Close #1
  134.         MsgBox "Done!"
  135.      Else
  136.         MsgBox "Not a compiled VB 3 file!"
  137.      End If
  138.   End If
  139. Exit Sub
  140.  
  141. modify:
  142.    gv = False
  143.    For b = 1 To ftel
  144.       z = InStr(a$, frm$(b))
  145.       If z > 0 Then
  146.          l$ = String$(Len(frm$(b)), 0)
  147.          Mid$(a$, z) = l$
  148.       End If
  149.    Next
  150. Return
  151. End Sub
  152.  
  153. Sub Command2_Click ()
  154.   file$ = exefile.Text
  155.   zk1$ = Chr(2) + Chr(4) + Chr(0)
  156.   zk2$ = Chr(3) + Chr(4) + Chr(0)
  157.   
  158.   tel = 0
  159.   st& = 1
  160.   ZOEK$ = Chr(&HFF) + Chr(&HCC) + Chr(&H2C) + Chr(0)
  161.   Do
  162.     ps& = ScanFile&(file$, ZOEK$, st&)
  163.     If ps& > 0 Then
  164.        tel = tel + 1
  165.        GoSub Getinfo
  166.        st& = ps& + 10
  167.     End If
  168.   Loop Until ps& = 0
  169.   MsgBox "Ready!"
  170. Exit Sub
  171.  
  172. Getinfo:
  173.    Open exefile.Text For Binary As #1
  174.    If Loc(1) + 16384 < LOF(1) Then
  175.       a$ = Space$(16384)
  176.    Else
  177.       a$ = Space$(LOF(1) - Loc(1))
  178.    End If
  179.    Seek #1, ps&
  180.    Get #1, , a$
  181.    Close #1
  182.    cp$ = a$
  183.    p1 = qInStr2%(1, a$, zk1$)
  184.    p2 = qInStr2%(1, a$, zk2$)
  185.    p1 = min(p1, p2)
  186.    If p1 = 0 Then
  187.      MsgBox "Error : 1"
  188.    Else
  189.         '-------skip nul bytes
  190.       bg = p1 + 10
  191.       Do
  192.         c$ = Mid$(a$, bg, 1)
  193.         If Asc(c$) <> 0 Then
  194.            Exit Do
  195.         Else
  196.            bg = bg + 1
  197.         End If
  198.       Loop Until bg = Len(a$)
  199.       a$ = Mid$(a$, bg)
  200.       ed = InStr(a$, Chr(0))
  201.       t$ = Left(a$, ed)
  202.       orig = InStr(cp$, t$)
  203.       dum$ = String$(Len(t$), 0)
  204.       Mid$(cp$, orig) = dum$'replace nullbytes
  205.    
  206.       '-----------write back --------
  207.       Open exefile.Text For Binary As #1
  208.       Seek #1, ps&
  209.       Put #1, , cp$
  210.       Close #1
  211.    End If
  212. Return
  213.  
  214. End Sub
  215.  
  216. Sub Command3_Click ()
  217.   cmdialog1.DialogTitle = "Select a VB project file"
  218.   cmdialog1.Filter = "*.MAK|*.MAK"
  219.   cmdialog1.Action = 1
  220.   If Err <> 32755 Then
  221.      prjfile.Text = cmdialog1.Filename
  222.   End If
  223. End Sub
  224.  
  225. Sub Command4_Click ()
  226.     End
  227. End Sub
  228.  
  229. Sub Command5_Click ()
  230.   cmdialog1.DialogTitle = "Select the EXE file to protect"
  231.   cmdialog1.Filter = "*.EXE|*.EXE"
  232.   cmdialog1.Action = 1
  233.   If Err <> 32755 Then
  234.      exefile.Text = cmdialog1.Filename
  235.   End If
  236. End Sub
  237.  
  238. Function min (y, x)
  239.   If y > 0 And x > 0 Then
  240.     If y < x Then min = y Else min = x
  241.   ElseIf y > 0 Then
  242.     min = y
  243.   ElseIf x > 0 Then
  244.     min = x
  245.   Else
  246.     min = 0
  247.   End If
  248. End Function
  249.  
  250.